package com.wejoy.video.middle.station.data.service.system;

import com.wejoy.video.middle.station.data.domain.system.SysUser;

import javax.servlet.http.HttpSession;
import java.util.List;

/**
 * 系统--用户表
 *
 * @author admin
 * @date 2021年10月19日 15:07:06
 */
public interface ISysUserService {
    /**
     * 保存或更新
     *
     * @param req
     */
    void save(SysUser req, String operator);

    /**
     * 插入
     *
     * @param sysUser sysUser
     * @return int
     */
    int insertSelective(SysUser sysUser);

    /**
     * 主键更新
     *
     * @param sysUser sysUser
     * @return int
     */
    int updateSelectiveById(SysUser sysUser);

    /**
     * 数量
     *
     * @param sysUser sysUser
     * @return int
     */
    int getCount(SysUser sysUser);
    /**
     * 数量
     *
     * @param sysUser sysUser
     * @return int
     */
    int getDataPermissionCount(SysUser sysUser);

    /**
     * 主键查询
     *
     * @param id id
     * @return SysUser
     */
    SysUser getOneById(Long id);

    /**
     * 多条
     *
     * @param sysUser sysUser
     * @return List<SysUser>
     */
    List<SysUser> getList(SysUser sysUser);

    /**
     * 分页
     *
     * @param sysUser sysUser
     * @return List<SysUser>
     */
    List<SysUser> getPageList(SysUser sysUser);
    /**
     * 分页
     *
     * @param sysUser sysUser
     * @return List<SysUser>
     */
    List<SysUser> getDataPermissionPageList(SysUser sysUser);

    /**
     * @param id
     * @return
     */
    SysUser getExitOneById(Long id);

    /**
     * 删除
     *
     * @param id
     * @param operator
     */
    void delete(Long id, String operator);

    /**
     * 登陆
     *
     * @param sysUserReq
     * @return
     */
    SysUser login(SysUser sysUserReq);

    /**
     * 接口登陆
     *
     * @param username
     * @param password
     * @return
     */
    SysUser thirdLogin(String username, String password);

    /**
     * 修改密码
     *
     * @param oldPassword
     * @param newPassword
     * @param sysUserId
     */
    void updatePassword(String oldPassword, String newPassword, Long sysUserId);
    /**
     * 修改手机
     *
     * @param phone
     * @param sysUserId
     */
    void updatePhone(String phone, Long sysUserId);

    /**
     * 验证用户登陆错误次数
     * @param username
     */
    void checkLoginErrorNumByUsername(String username);
}
